// 创建一个包含10个32位整数的类型化数组
const int32Array = new Int32Array(10);
// 填充数组
for (let i = 0; i < int32Array.length; i++) {
  int32Array[i] = i * 2;
}

// 计算所有元素的总和

const sum = int32Array.reduce((acc, val) => acc + val, 0);

console.log('类型化数组中的元素',int32Array); 
console.log('总和',sum); // 90


// 访问和修改元素

console.log(int32Array[3]); // 6

int32Array[3] = 12;

console.log(int32Array[3]); // 12


// 转换为 Float32Array

const float32Array = new Float32Array(int32Array.buffer);

console.log(float32Array[3]); // 1.6815581571897805e-44

// 转换为 Uint8Array

const uint8Array = new Uint8Array(int32Array.buffer);

console.log(uint8Array[3]); // 0

// 转换为 ArrayBuffer

const arrayBuffer = int32Array.buffer;

console.log(arrayBuffer); // ArrayBuffer {}

// 转换为 TypedArray

const typedArray = new Int32Array(arrayBuffer);

console.log(typedArray[3]); // 12


// 定义一个三角形的三个顶点的坐标
const vertices = new Float32Array([
  0.0,1.0, //第一个顶点的坐标(x=0.0 y=1.0)
  -1.0,-1.0, //第二个顶点的坐标(x=-1.0 y=-1.0)
  1.0,-1.0 //第三个顶点的坐标(x=1.0 y=-1.0)
])
// 内部项两两一组作为一个点的x,y坐标